#include "widget.h"
#include "ui_widget.h"
#include <QRegExp>
#include <QRegExpValidator>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->pushButton->setEnabled(false);

    //创建一个正则对象
    // ^1：以1开头
    // \d: 匹配数字字符 \\d 双斜杠是为了转义
    // {10}：代表匹配10次  \d操作
    // $:代表结尾
    QRegExp regExp("^1\\d{10}$");

    //设置lineEdit的验证器
    ui->lineEdit->setValidator(new QRegExpValidator(regExp));
}

Widget::~Widget()
{
    delete ui;
}

//当lineEdit中的文本变化时们就会触发信号
void Widget::on_lineEdit_textEdited(const QString &text)
{
    //Validator()是进行验证，需要我们传入两个参数，
    //一个是要验证的字符串，第二个是一个int，如果匹配出错了，由这个参数带出出错位置
    QString content = text;
    int pos = 0;

    if(ui->lineEdit->validator()->validate(content,pos) == QValidator::Acceptable){
        //验证成功了
        //将按钮设置为可用状态
        ui->pushButton->setEnabled(true);
    }else{
        //验证失败,将按钮禁用
        ui->pushButton->setEnabled(false);
    }
}
